<template>
  <div class="page-container">
    <div v-if="editDialogVisible1" class="page-container">
      <el-tabs v-model="editableTabsValue" type="card" @tab-click="handleClick">
        <el-tab-pane
          v-for="(item, index) in editableTabs"
          :key="index"
          :label="item.title"
          :name="item.name"
        ></el-tab-pane>
        <el-tab-pane label="商品参数" name="parameter" v-if="productId&&productId!=0">
          <product-parameter-json v-if="categoryJsonId" :categoryId="categoryJsonId" :productId="productId"></product-parameter-json>
        </el-tab-pane>
      </el-tabs>

      <!--商品基本信息-->
      <AddOrUpdateProductInfo ref="AddOrUpdateProductInfo"></AddOrUpdateProductInfo>
      <!--商品图片组件-->
      <AddOrUpdateMedia ref="AddOrUpdateMedia"></AddOrUpdateMedia>
      <!--商品描述-->
      <AddOrUpdateDescribe ref="AddOrUpdateDescribe"></AddOrUpdateDescribe>
      <!--商品售后-->
      <AddOrUpdateAfterSale ref="AddOrUpdateAfterSale"></AddOrUpdateAfterSale>
      <!--价格管理列表-->
      <AddOrUpdatePrice ref="AddOrUpdatePrice"></AddOrUpdatePrice>
      <!--类目属性-->
      <AddOrUpdateProperty ref="AddOrUpdateProperty"></AddOrUpdateProperty>
      <!--商品分发-->
      <AddOrUpdateDistribute ref="AddOrUpdateDistribute"></AddOrUpdateDistribute>
      <!--销售区域-->
      <AddOrUpdateSaleArea ref="AddOrUpdateSaleArea"></AddOrUpdateSaleArea>
      <!--系列子品-->
      <AddOrUpdateProductParent ref="AddOrUpdateProductParent"></AddOrUpdateProductParent>
      <!--辅计量单位-->
      <AddOrUpdateUnits ref="AddOrUpdateUnits"></AddOrUpdateUnits>
      <!--bom商品-->
      <AddOrUpdateBom ref="AddOrUpdateBom"></AddOrUpdateBom>
      <!--首营-->
      <AddOrUpdatePill ref="AddOrUpdatePill"></AddOrUpdatePill>
      <!--校标商品-->
      <AddOrUpdateInventory ref="AddOrUpdateInventory"></AddOrUpdateInventory>
    </div>
  </div>
</template>

<script>
  import CyTable from '@/views/Core/ProductTable'
  import KtButton from '@/views/Core/KtButton'
  import {format} from '@/utils/datetime'
  import TableColumnFilterDialog from '@/views/Core/TableColumnFilterDialog'
  import AddOrUpdateMedia from './AddOrUpdateMedia'
  import AddOrUpdateDescribe from './AddOrUpdateDescribe'
  import AddOrUpdateAfterSale from './AddOrUpdateAfterSale'
  import AddOrUpdatePrice from './AddOrUpdatePrice'
  import AddOrUpdateProperty from './AddOrUpdateProperty'
  import AddOrUpdateDistribute from './AddOrUpdateDistribute'
  import AddOrUpdateSaleArea from './AddOrUpdateSaleArea'
  import AddOrUpdateProductParent from './AddOrUpdateProductParent'
  import AddOrUpdateUnits from './AddOrUpdateUnits'
  import AddOrUpdateProductInfo from './AddOrUpdateProductInfo'
  import AddOrUpdateBom from './AddOrUpdateBom'
  import AddOrUpdatePill from './AddOrUpdatePill'
  import AddOrUpdateInventory from './AddOrUpdateInventory'
  import ProductParameterJson from './ProductParameterJson'

  export default {
    components: {
      CyTable,
      KtButton,
      TableColumnFilterDialog,
      AddOrUpdateMedia,
      AddOrUpdateDescribe,
      AddOrUpdateAfterSale,
      AddOrUpdatePrice,
      AddOrUpdateProperty,
      AddOrUpdateDistribute,
      AddOrUpdateSaleArea,
      AddOrUpdateProductParent,
      AddOrUpdateUnits,
      AddOrUpdateProductInfo,
      AddOrUpdateBom,
      AddOrUpdatePill,
      AddOrUpdateInventory,
      ProductParameterJson
    },

    data() {
      return {
        categoryId: '',
        categoryJsonId: null,
        productId: 0,
        editableTabs: [],
        size: 'small',
        operation: false, // true:新增, false:编辑
        editDialogVisible: false, // 新增编辑界面是否显示
        editLoading: false,
        editDialogVisibleDetail: false,
        multipleSelection: [],
        editDialogVisible1: true,
        editableTabsValue: '1',
        unitsName: '',
      }
    },

    methods: {
      //商品详情回显
      getDataList() {
        let this_ = this
        if (this_.productId != 0) {
          let params = {}
          params.productId = this_.productId
          this.utils.request.queryProductInfo(params, function (data) {
            if (data.data != null) {
              this_.productId = data.data.id
              this_.categoryId = data.data.categoryId
              this_.unitsName = data.data.unitsName
              // 商品类型 1-普通商品; 2-系列子品; 3.sku商品
              if (data.data.typeOfProduct === 1) {
                this_.editableTabs = [
                  {
                    title: '商品基本信息',
                    name: '1'
                  },
                  {
                    title: '商品图片',
                    name: '2'
                  },
                  {
                    title: '商品描述',
                    name: '3'
                  },
                  {
                    title: '商品售后',
                    name: '4'
                  },
                  {
                    title: '价格管理',
                    name: '5'
                  },
                  {
                    title: '类目属性',
                    name: '6'
                  },
                  {
                    title: '分发',
                    name: '7'
                  },
                  {
                    title: '销售区域',
                    name: '8'
                  },
                  {
                    title: '辅计量单位',
                    name: '11'
                  },
                ]
              } else {
                this_.editableTabs = [
                  {
                    title: '商品基本信息',
                    name: '1'
                  },
                  {
                    title: '商品图片',
                    name: '2'
                  },
                  {
                    title: '商品描述',
                    name: '3'
                  },
                  {
                    title: '商品售后',
                    name: '4'
                  },
                  {
                    title: '价格管理',
                    name: '5'
                  },
                  {
                    title: '分发',
                    name: '7'
                  },
                  {
                    title: '销售区域',
                    name: '8'
                  },
                  {
                    title: '系列子品',
                    name: '9'
                  },
                ]
              }
              // 组合商品
              if (data.data.type === 3 || data.data.type === 4) {
                this_.editableTabs.push({title: '组合商品', name: '12'})
              }
              // 药品
              if (data.data.pillFlag === 1) {
                this_.editableTabs.push({title: '首营', name: '13'})
              }
              // 校标款
              // if (data.data.inventoryDisplay === 1) {
              //   this_.editableTabs.push({title: ' 校标款配置基本款', name: '14'})
              // }
            }
          })
        } else {
          this_.editableTabs = [
            {
              title: '商品基本信息',
              name: '1'
            }
          ]
        }
      },
      // tab切换
      handleClick(tab) {
        let param = {
          productId: this.productId,
          flag: false,
          categoryId: this.categoryId
        }
        if (tab.name === '1') {
          this.$refs.AddOrUpdateMedia.init(param)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateProductInfo.init(param)
        } else if (tab.name === '2') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateMedia.init(param)
        } else if (tab.name === '3') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateDescribe.init(param)
        } else if (tab.name === '4') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateAfterSale.init(param)
        } else if (tab.name === '5') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdatePrice.init(param)
        } else if (tab.name === '6') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateProperty.init(param)
        } else if (tab.name === '7') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateDistribute.init(param)
        } else if (tab.name === '8') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateSaleArea.init(param)
        } else if (tab.name === '9') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateProductParent.init(param)
        } else if (tab.name === '10') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          this.editDialogVisible11 = true
          this.$refs.AddOrUpdateUnits.init(param)
          let this_ = this
          this.utils.request.queryStoreList({}, function (data) {
            if (data.data != null) {
              this_.queryStoreList = data.data
            }
          })
          //渠道
          let param = {}
          param.productId = this.productId
          this.utils.request.queryProductSource(param, function (data) {
            if (data.data != null) {
              this_.sourceDataList = data.data
            }
          })
        } else if (tab.name === '11') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          param.unitsName = this.unitsName
          this.$refs.AddOrUpdateUnits.init(param)
        } else if (tab.name === '12') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdateBom.init(param)
        } else if (tab.name === '13') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdateInventory.init(param)
          param.flag = true
          this.$refs.AddOrUpdatePill.init(param)
        } else if (tab.name === '14') {
          this.$refs.AddOrUpdateProductInfo.init(param)
          this.$refs.AddOrUpdateMedia.init(false)
          this.$refs.AddOrUpdateDescribe.init(param)
          this.$refs.AddOrUpdateAfterSale.init(param)
          this.$refs.AddOrUpdatePrice.init(param)
          this.$refs.AddOrUpdateProperty.init(param)
          this.$refs.AddOrUpdateDistribute.init(param)
          this.$refs.AddOrUpdateSaleArea.init(param)
          this.$refs.AddOrUpdateProductParent.init(param)
          this.$refs.AddOrUpdateUnits.init(param)
          this.$refs.AddOrUpdateBom.init(param)
          this.$refs.AddOrUpdatePill.init(param)
          param.flag = true
          this.$refs.AddOrUpdateInventory.init(param)
        } else if(tab.name == 'parameter'){
          this.categoryJsonId = this.$refs.AddOrUpdateProductInfo.dataForm.categoryId;
          if(this.categoryJsonId){
            this.$refs.AddOrUpdateMedia.init(param)
            this.$refs.AddOrUpdateDescribe.init(param)
            this.$refs.AddOrUpdateAfterSale.init(param)
            this.$refs.AddOrUpdatePrice.init(param)
            this.$refs.AddOrUpdateProperty.init(param)
            this.$refs.AddOrUpdateDistribute.init(param)
            this.$refs.AddOrUpdateSaleArea.init(param)
            this.$refs.AddOrUpdateProductParent.init(param)
            this.$refs.AddOrUpdateUnits.init(param)
            this.$refs.AddOrUpdateBom.init(param)
            this.$refs.AddOrUpdatePill.init(param)
            this.$refs.AddOrUpdateInventory.init(param)
            this.$refs.AddOrUpdateProductInfo.init(param)
          } else {
            this.$message.warning("请选择商品类目")
          }

        }
      },
    },

    mounted() {
      this.productId = this.$route.params.productId
      this.getDataList()
    }

  }
</script>

<style scoped lang="scss">

</style>
